1. Field of Invention
This invention relates to a method for accessing software applications, and more specifically to a method of generating a client user interface for executing complex, pre-configured software applications.
2. Background of the Invention
For the great majority of consumer software applications, considerable resources are attributed to the design of the user interface (herein xe2x80x9cUIxe2x80x9d). Not only are well developed UIs aesthetically pleasing to the end user, they also serve to reduce the perceived complexity of a software application. Major players in the operating system market such as Microsoft(copyright) and Apple(copyright) strongly market the ease of use and attractiveness of their UIs. Nearly every major release of the Windows(copyright) operating system has included a substantial revision of the UI. Even the latest version of the Windows line of operating system, XP, touts its UI: xe2x80x9cthe familiar Windows interface has been enhanced to make it even easier to use. New visual cues help you find important information, and the redesigned Start menu makes it easier to access the programs you use most frequently.xe2x80x9d Microsoft""s major competitor in the operating system market, Apple, bills its new Aqua(trademark) interface with the following copy: xe2x80x9cYour operating system can contribute to screen clutter by spawning multiple windows. Navigating deep structured file systems, for instance, involves opening more and more windows, obscuring your view of the desktop. Mac OS X eliminates the problem of multiplying windows by focusing many of its applications in a single window. Key system components like the new Finder, Mail and the System Preferences panel are presented in a single window. The result? A clean uncluttered look.xe2x80x9d UI enhancements lower the learning curve for operating a software application. Careful thought and consideration in the UI design leads to systems that place information in clearly understood format and in anticipated locations.
Even for traditionally command-line (herein xe2x80x9cCLxe2x80x9d) operating systems, UI applications such as GNOME, KDE, and X Window are notoriously well known. GNOME (GNU Network Object Model Environment) is a graphical user interface (herein xe2x80x9cGUIxe2x80x9d) and set of computer desktop application for users of the Linux computer operating system. It""s intended to make a Linux operating system easy to use for non-programmers and generally corresponds to the Windows desktop interface and its most common set of applications. Matthias Ettrich launched the KDE project in October 1996 with the goal of making the UNIX platform more attractive and easy to use for computer users who are familiar with a graphical interface instead of typed commands. Today, KDE is used with Linux, Solaris, FreeBSD, OpenBSD, and LinuxPPC. X Window is primarily used in networks of interconnected mainframes, minicomputers, and workstations. It is also used on the X terminal, which is essentially a workstation with display management capabilities but without its own applications.
Despite the interest and investment in GUIs for virtually every computer platform, CL interfaces continue to thrive, albeit in less consumer-oriented products, and more-particularly, in batch-file driven applications. A batch file is a text file that contains a sequence of commands for a computer operating system. It""s called a batch file because it batches (bundles or packages) into a single file a set of commands that would otherwise have to be presented to the system interactively from a keyboard one at a time. A batch file is usually created for command sequences for which a user has a repeated need. Commonly needed batch files are often delivered as part of an operating system. One initiates the sequence of commands in the batch file by simply entering the name of the batch file on a command line. In the Disk Operating System (DOS), a batch file has the file name extension xe2x80x9c.BATxe2x80x9d. (The best known DOS batch file is the AUTOEXEC.BAT file that initializes DOS when one starts the system.) In UNIX-based operating systems, a batch file is called a shell script. In IBM""s mainframe VM operating systems, it""s called an EXEC.
For current software applications, batch file processes are often used in complex engineering and financial tools. An example of an application which may be batch-driven is the CFX(copyright) family of engineering software products developed by AEA Technology plc based in Oxfordshire, United Kingdom (herein xe2x80x9cAEAxe2x80x9d). However, even with major improvement in making new versions of CFX(copyright) easier to use, the learning curve for users takes weeks to months to overcome. An application such as CFX(copyright) must be general enough to handle computational fluid dynamic problems ranging from supersonic flow to heat transfer to vascular flow. Therefore, the general purpose, and therefore complex, interface associated with such applications cannot be supplanted without a substantial loss of functionality. The general-purpose user interfaces available in such tools provides a wide range of modeling capability, but unfortunately results in steep learning curves. As a result, only a small number of users are capable of creating a ground-up simulation in CFX, although a large number of users may want access to the application. For example, a ground up simulation created for a fluid flow on a five-centimeter pipe may offer an expensive one-time solution for an on-site engineer. However, if the engineer wanted to know what would happen if the five-centimeter pipe was replaced by a three-centimeter pipe, the engineer would have to contact the highly trained CFX(copyright) user to modify the previously written simulation to modify the pipe dimensions. This results in a loss of productivity for both parties: the on-site engineer waiting for the new results and the CFX(copyright) user distracted from authoring new simulations.
It should be noted that GUIs are often provided for complex, batch-driven applications, yet even best efforts to make a GUI easy to operate still result in a high learning curve if the configuration and execution of the application is still complex. For example, GUIs currently used in drafting and engineering application may have literally hundreds of nested buttons accessible in a single screen interface. This information overload substantially raises the learning curve for operating the software application, particular when only the modification of a handful of variables is necessary for the objectives of the end user.
Another problem with complex, batch driven software is the inefficient utilization of the licensing fees. Engineering software such as CFX(copyright) is more costly to license by magnitudes when compared to even the most expensive software commonly known to laypersons. Accordingly, licensees of the software wish to utilize the application as much as possible to obtain a return on their investment. However, because the learning curve is so high for complex software applications, usually only a limited number of users are capable of utilizing the software, even though a large number of company employees wish to frequently access the application. Similar to licensing concerns is that of CPU utilization. Complex and expensive software often requires complex and expensive computers to run them. An idle CPU represents poor utilization of a company""s investment in its computational infrastructure.
Still another problem in the art is that of remote access. Going back to the example of the onsite engineer, the CFX(copyright) system would only be available if it was installed on a remote computer with sufficient computational power to operate, or alternatively for a remote access application such as CITRIX(copyright) or Windows Terminal Services (herein xe2x80x9cTSxe2x80x9d). However, even CITRIX(copyright) and TS solutions only provide a bitmap emulation of the local user interface. The onsite engineer is still faced with the complexities of the software application even though the simulation has largely been authored but for some modifications in a small array of variables. Furthermore, even the most efficient terminal screen emulations generally require a substantial amount of network bandwidth to operate without distracting latency.
An ever-increasing area of corporate development is mining knowledge databases. Companies frequently generate large stores of information, which, if efficiently accessed, produce substantial gains in productivity. However, in the field of complex software applications, sophisticated processes authored by a few highly trained computer specialists are not accessible by other users in the company. These processes might be focused on engineering, as is the case for CFX software, or focused on financial applications such as Agresso Business World products developed by Agresso Group ASA headquartered in Oslo, Norway. Regardless of the target of the applications, valuable intellectual property is left untapped by the majority of a company simply due to the xe2x80x9cfront-endxe2x80x9d complexity of the software application.
Still another problem in the prior art is that of employee turnover. When an expert user leaves a company, much of the expert""s knowledge leaves with that person. What is needed is a method to encapsulate the expert""s work product into a system that may be easily accessed by novice users even in the absence of the expert. Value exists in an expert""s ability to apply complex software solutions to the specific needs of a particular company.
A number of patents exist relating to client-server processing of complex software applications such an engineering simulations. U.S. Pat. No. 5,778,368 to Hogan et al. and assigned to Telogy Networks, Inc. describes a system to permit re-use of real-time embedded software. The Hogan patent does discuss simulations in client-server architecture. However, the Hogan patent does not teach the distillation of complex simulations into end-user, client forms which may be manipulated without specialized knowledge of the simulation software. U.S. Pat. No. 5,826,065 to Hinsberg et al. and assigned to IBM Corporation describes an object-oriented architecture for stochastic simulation of chemical reactions and transport wherein the programmer only makes certain user interface options available to permit an end user to configure the simulation at runtime. However, this is achieved through an array of simulation objects employed in an object-oriented architecture. Japanese Patent No. JP408055129A to Oshima and assigned to Toppan Printing Company describes a batch file-driven system for image processing but provides no suggestion as to reducing the complexity of administration and execution. U.S. Pat. No. 5,872,958 to Worthington et al. and assigned to IBM Corporation describes a method of modeling hardware component dependencies. The Worthington does not suggest or describe a streamlined client-server interface to remove the learning curve and complexities of sophisticated simulation and financial software.
Unfortunately, none of the references available in the prior art disclose, teach or suggest a solution to the aforementioned problems.
Accordingly, what is needed in the art is a method for generating an easy to use front-end UI for previously configured complex software applications.
Another need exists in the art for a method to efficiently and easily create the above-mentioned front-end UI regardless of the type of software application.
Another need exists in the art for a method to more efficiently utilize CPU time.
Another need exists in the art for a method to more efficiently utilize software license seats.
Another need exists in the art for a method to reduce bandwidth considerations for remote application configuration, processing and analysis.
Another need exists in the art for a method to better capture enterprise knowledge as it relates to complex software configuration and processing.
Another need exists in the art for a method to encapsulate the expert""s work product into a system that may be easily accessed by novice users even in the absence of the expert.
It is, therefore, to the effective resolution of the aforementioned problems and shortcomings of the prior art that the present invention is directed.
However, in view of the prior art in at the time the present invention was made, it was not obvious to those of ordinary skill in the pertinent art how the identified needs could be fulfilled.
The present invention comprises a method for configuring and executing a software application with a client user interface, the method comprising the steps of accessing a master configuration file containing an array of configuration variables controlling the execution of the software application, preselecting a subset of configuration variables from the array of configuration variables contained in the master configuration file, generating the client user interface to modify only the subset of configuration variables, transmitting the client user interface to a client computer, receiving the subset of configuration variables as modified on the client computer, applying the subset of configuration variables against the master configuration file, executing the software application in accordance with the master configuration file on a computational server, the execution of the software application producing an output result, and transmitting the output result to the client computer.
It should be noted that instead of only a single master configuration file, a plurality of master configuration files may be accessed and modified by the present invention. Furthermore, a plurality of software applications may be executed in a preselected order wherein the results are aggregated into a single output. Therefore, the present invention may configure and drive a plurality of software applications, each employed collectively to solve a discrete problem.
In a preferred embodiment of the invention, additional steps include storing in the master configuration file access instructions to a plurality of computational servers available to execute the software application, configuration settings for displaying a plurality of languages in the client user interface, and licensing information for managing available licenses to permit the execution of the software application.
In order to accommodate a plurality of client computer requests for processing, additional steps may include receiving substantially concurrently a plurality of subsets, storing the plurality of subsets prior to execution on the computational server, and executing each subset as the computational server becomes available for processing. Queuing data may be stored to establish a relative execution priority of the plurality of subsets and a processing status report may be transmitted to the client user interface to indicate how long it will take before the results are computed and ready for review.
The preselected subset of configuration variables may be written to a template file wherein the form and appearance of client user interface is defined by the template file.
A default measurement unit may be preselected for at least one variable of the preselected subset of configuration variables. Such measurement unit might be meters, centimeters, centigrade or the like. To provide flexibility in data input, a plurality of measurement units selectable for at least one variable of the preselected subset of configuration variables may be preselected.
A default value for at least one variable of the preselected subset of configuration variables may also be preselected. Permissible bounds may be established for the client-inputted variables for an individual variable. In addition, permissible bounds may also be established for one variable relative to the value of a second variable.
In order that the user interface is easy to understand, a text string description of each variable may be established. A plurality of values may be accepted by establishing an input means to accept a range of values with linear stepping. The values may be distributed linearly, logarithmically, or arbitrarily.
In addition to the text descriptions as provided above, the client interface may be greatly enhanced by predefining at least one graphic representation of the subset of configuration variables for display on the client user interface and modifying the at least one graphic representation responsive to a modification in at least one variable of the preselected subset of configuration variables. At least one dimension value in visual proximity to the at least one graphic representation may be displayed. In addition, a mouse-over or text box entry event may be used to trigger the step of making visible a first dimension value responsive to a modification of a first variable of the preselected subset of configuration variables and making the first dimension value invisible responsive to a modification of another variable of the preselected subset of configuration variables. To further lower the learning curve necessary to operate the client interface an additional step may include displaying a plurality of images on the client user interface, at least one variable of the preselected subset of configuration variables being modified responsive to the selection of an individual image within the group of the plurality of images.
An important feature of the present invention is the ease in which complex and legacy software applications may be modified and executed. A preexisting configuration variable in the master configuration file is replaced with a machine-readable identifier. When the modified variables are received from the client computer, the master configuration file is parsed wherein the corresponding configuration variable replaces the machine-readable identifier. The user-defined configuration variables may be accepted as a binary or ASCII file upload or as a delimited string post.
A preferred integration of systems for the invention includes establishing a computational server running at least one software application, establishing an application server communicatively coupled to the computational server, establishing a communications pathway from the application server to at least one client computer, the communications pathway adapted to transmit data for displaying a graphic user interface on the client computer, accessing a master configuration file containing an array of configuration variables controlling the execution of the software application, preselecting a subset of configuration variables from the array of configuration variables contained in the master configuration file, establishing a template file wherein the subset of configuration variables and the appearance of the graphic user interface are defined by the template file, storing the template file on a storage medium communicatively accessible by the application server, transmitting the template file to the client computer, responsive to receiving an array of modified configuration variables from the client computer, applying the array of modified configuration variables to the master configuration file, executing the software application in accordance with the master configuration file on the computational server, outputting a result, and transmitting the result to the client computer.
It is therefore an object of the present invention to provide a method for generating an easy to use front-end UI for previously configured complex software applications.
It is another object of the present invention to provide a method to efficiently and easily create the above-mentioned front-end UI regardless of the type of software application.
It is another object of the present invention to provide a method to more efficiently utilize CPU time.
It is another object of the present invention to provide a method to more efficiently utilize software license seats.
It is another object of the present invention to provide a method to reduce bandwidth considerations for remote application configuration, processing and analysis.
It is another object of the present invention to provide a method to better capture enterprise knowledge as it relates to complex software configuration and processing.
An advantage of the invention is that novice users may utilize complex software applications without enduring a high learning curve.
Another advantage of the invention is that specialists who are trained to use the complex software application need not be distracted by requests to modify a limited subset of variables in an existing master configuration file.
Another advantage of the invention is that a plurality of novice users may access a library of preexisting software configurations that already meet the requirements of the computing task without incurring the expense of configuring a computing task from the ground up.
Another advantage of the invention is that a larger number of users may engage the computational servers, thus better utilizing existing resources.
Another advantage of the invention is that a larger number of users may utilize an existing software license.
Another advantage of the invention is that users are provided a rich, graphical interface for what may normally be a command line software application.
Another advantage of the invention is that users are provided graphic feedback responsive to changes in the variables modifiable in the user interface.
Another advantage of the invention is that legacy client hardware and limited bandwidth may easily accommodate the end user as only configuration variables and post-processing results are transmitted as opposed to terminal emulation solutions.
Another advantage of the invention is that an expert user""s ability to apply complex software solutions to the specific needs of a particular company is encapsulated into the system so that it may be easily be accessed by novice users even in the absence of the expert. It is to be understood that both the foregoing general description and the following detailed description are explanatory and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate embodiments of the present invention and together with the general description, serve to explain principles of the present invention.
Another advantage of the invention is that a single user interface may be configured to drive and obtain results from a plurality of separate underlying applications.
These and other important objects, advantages, and features of the invention will become clear as this description proceeds.
The invention accordingly comprises the features of construction, combination of elements, and arrangement of parts that will be exemplified in the description set forth hereinafter and the scope of the invention will be indicated in the claims.